﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.estadistica;
using com.clinica.business.BE.gesliq;
using com.clinica.business.BE.actdocpago;
using LiclUtil;
using LiclEstadistica.Views;
using System.Text;


namespace wesiGestClinica.estadistica
{
    public partial class FormsOperativoFacturacion : Shared.SMGPaseBase, ILiclCiaSeguros
    {
        private LiclCiaSegurosPresenter oPresenter = new LiclCiaSegurosPresenter();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                oPresenter.View = this;
                this.Master.TituloModulo = "Reporte Operativo de Facturación ";
                IniciarControles();
            }
            Master.OcultarMensaje();
            oPresenter.View = this;
        }
        protected override void DefineHandlers()
        {
            UCBarra1.img_Volver.Visible = true;
            UCBarra1.img_Volver.Click += new ImageClickEventHandler(img_Volver_Click);
            btn_Generar.Click += new EventHandler(btn_Generar_Click);
            btn_Imprimir.Attributes.Add("onClick", "Imprimir();");
            img_BuscarCiaSeguros.Attributes.Add("onClick", "abrirPopupAgregarCiaSeguros();");
            img_BuscarCliente.Attributes.Add("onClick", "abrirPopupCliente();");
            rdb_TipoDocumentos.CheckedChanged += new EventHandler(rdb_TipoDocumentos_CheckedChanged);
            rdb_Cliente.CheckedChanged += new EventHandler(rdb_Cliente_CheckedChanged);
            rdb_Cia.CheckedChanged += new EventHandler(rdb_Cia_CheckedChanged);
        }

        void img_Volver_Click(object sender, ImageClickEventArgs e)
        {
            
        }

        void rdb_Cia_CheckedChanged(object sender, EventArgs e)
        {
            rdb_Cliente.Checked = rdb_TipoDocumentos.Checked = false;
            img_BuscarCliente.Enabled = txt_Cliente.Enabled = false;
            rbu_TipoDoc.Enabled = false;
            img_BuscarCiaSeguros.Enabled = txt_CiaSeguros.Enabled = true;
        }

        void rdb_Cliente_CheckedChanged(object sender, EventArgs e)
        {
            rdb_Cia.Checked = rdb_TipoDocumentos.Checked = false;
            img_BuscarCiaSeguros.Enabled = txt_CiaSeguros.Enabled = false;
            rbu_TipoDoc.Enabled = false;
            img_BuscarCliente.Enabled = txt_Cliente.Enabled = true;
        }

        void rdb_TipoDocumentos_CheckedChanged(object sender, EventArgs e)
        {
            rdb_Cia.Checked = rdb_Cliente.Checked = false;
            img_BuscarCiaSeguros.Enabled = txt_CiaSeguros.Enabled = false;
            img_BuscarCliente.Enabled = txt_Cliente.Enabled = false;
            rbu_TipoDoc.Enabled = true;
        }

        void btn_Generar_Click(object sender, EventArgs e)
        {
            DocumentoPagoBE oDoc = new DocumentoPagoBE();
            if (rdb_TipoDocumentos.Checked)
            {
                oDoc.TipoDocumento = rbu_TipoDoc.SelectedValue;
                oDoc.Accion = 1;

            }
            if (rdb_Cliente.Checked)
            {
                oDoc.Accion = 2;
               if (txt_CodigoCliente.Text.Trim() == "")
                  oDoc.TipoDocumento = "0";
               else
                  oDoc.TipoDocumento = txt_CodigoCliente.Text.Trim();
            }
            if (rdb_Cia.Checked)
            {
                oDoc.Accion = 3;
                if (txt_CodCiaSeguros.Text.Trim() == "") 
                   oDoc.TipoDocumento = "0";
                else
                   oDoc.TipoDocumento = txt_CodCiaSeguros.Text.Trim();
            }
            if (ValidarBusqueda())
            {
                switch (oDoc.Accion)
                {
                    case 1:;
                 oPresenter.onObterner_Reporte_DocPago_Tipo(oDoc, DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim()));
                        break;
                    case 2:;
                     oPresenter.onObterner_Reporte_DocPago_Cliente(oDoc, DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim()));
                     break;
                    case 3:;
                     oPresenter.onObterner_Reporte_DocPago_Cia(oDoc, DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim()));
                     break;
               }

                dg_resultado01.Visible = true;
            }
            else
                dg_resultado01.Visible = false;
        }

        #region Metodos
        private bool ValidarBusqueda()
        {
            bool bolVal = true;
            StringBuilder strErrores = new StringBuilder();          

            if (!(DateTime.Parse(UCFecDesde.TextoFecha.Text).Year >= 1900 && DateTime.Parse(UCFecDesde.TextoFecha.Text).Year <= DateTime.Now.Year))
            {
                bolVal = false;
                strErrores.Append(" La Fecha desde se encuentra fuera de Rango,");
            }
            if (DateTime.Compare(DateTime.Parse(UCFecHasta.Texto.Trim()), DateTime.Now) > 0)
            {
                bolVal = false;
                strErrores.Append(" La Fecha hasta se encuentra fuera de Rango,");
            }
            try
            {
                DateTime.Parse(UCFecDesde.Texto.Trim());
                DateTime.Parse(UCFecHasta.Texto.Trim());
            }
            catch (Exception ex)
            {
                bolVal = false;
                strErrores.Append(ex.Message.Trim());
            }
            if (bolVal)
            {
                if (DateTime.Compare(DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim())) > 0)
                {
                    bolVal = false;
                    strErrores.Append(" La fecha hasta no puede ser mayor que la fecha desde,");
                }
            }
            if (!bolVal)
            {
                Master.MostrarMensaje(strErrores.ToString(), TipoMensaje.Error);
            }
            return bolVal;
        }
        private void IniciarControles()
        {
            DateTime fechaHasta = new DateTime();
            DateTime fechaDesde = new DateTime();

            fechaDesde = DateTime.Now.AddDays(-30);
            fechaHasta = DateTime.Today.ToUniversalTime();
            UCFecDesde.Texto = fechaDesde.ToString("dd/MM/yyyy");
            UCFecHasta.Texto = fechaHasta.ToString("dd/MM/yyyy");
            img_BuscarCliente.Enabled = false;
            img_BuscarCiaSeguros.Enabled = false;
        }
        private void DeterminarGrilla()
        {

        }
        #endregion

        #region ILiclCiaSeguros Members

        public void ObtenerReporte(List<CiaSegurosBE> lst)
        {

        }

        public void ObtenerReporteLiq(List<LiquidacionBE> lst)
        {

        }

        public void ObtenerTabla(List<ParametrosBE> lst, int tipo)
        {

        }

        public void MostrarMensajeError(string Mensaje)
        {

        }

        #endregion

        #region ILiclCiaSeguros Members


        public void ObtenerReporteDocPago(List<com.clinica.business.BE.actdocpago.DocumentoPagoBE> lst)
        {
            dg_resultado01.DataSource = lst;
            dg_resultado01.DataBind();
        }

        #endregion
    }
}
